java.lang প্যাকেজ হল Java এর সবচেয়ে গুরুত্বপূর্ণ প্যাকেজগুলির মধ্যে একটি, যা Java Standard Library-এর অংশ হিসেবে Java প্রোগ্রামিং ভাষার প্রাথমিক কাজকর্মের জন্য প্রয়োজনীয় ক্লাস এবং ইন্টারফেস সরবরাহ করে। এই প্যাকেজটি Java Platform-এর সর্বত্র অন্তর্ভুক্ত থাকে এবং এটি Java প্রোগ্রাম লেখার জন্য প্রাথমিক ও মৌলিক উপাদান সরবরাহ করে, যেমন স্ট্রিং, সংখ্যা, থ্রেড, সিস্টেমের আউটপুট ইত্যাদি।
java.lang প্যাকেজটি স্বয়ংক্রিয়ভাবে import হয়, অর্থাৎ আপনাকে এই প্যাকেজটিকে আলাদাভাবে import করার প্রয়োজন নেই। এটি Java প্রোগ্রামে সবচেয়ে মৌলিক এবং অপরিহার্য ক্লাসগুলো ধারণ করে, যা প্রতিটি Java অ্যাপ্লিকেশনে ব্যবহার করা হয়।
Java.lang প্যাকেজের কিছু গুরুত্বপূর্ণ ক্লাস:
Object:- এটি সব Java ক্লাসের superclass।
Objectক্লাসটি Java-তে inheritance এর মূল ভিত্তি। এটি বিভিন্ন সাধারণ মেথড যেমনtoString(),equals(),hashCode(),clone()ইত্যাদি সরবরাহ করে।
- এটি সব Java ক্লাসের superclass।
String:Stringক্লাসটি immutable (অপরিবর্তনীয়) এবং এটি টেক্সট ডেটা সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়। এর বিভিন্ন মেথড রয়েছে, যেমনlength(),substring(),concat(),replace()ইত্যাদি।
Math:Mathক্লাসটি গণিত সম্পর্কিত অপারেশনগুলির জন্য স্ট্যাটিক মেথড প্রদান করে। এটি সংখ্যাগুলি যোগ, বিযোগ, গুণ, ভাগ, রুট ক্যালকুলেশন, ত্রিকোণমিতিক ফাংশন ইত্যাদি করতে ব্যবহৃত হয়। উদাহরণ:Math.pow(),Math.sqrt(),Math.abs(),Math.random()।
Thread:Threadক্লাসটি Java এর মাল্টিথ্রেডিং সাপোর্ট করার জন্য ব্যবহৃত হয়। এটি থ্রেড তৈরি এবং চালানোর জন্য প্রয়োজনীয় পদ্ধতি সরবরাহ করে, যেমনstart(),run(),sleep(),join()ইত্যাদি।
System:Systemক্লাসটি স্ট্যাটিক মেথড দিয়ে সিস্টেম সম্পর্কিত কার্যক্রম পরিচালনা করে, যেমন আউটপুট প্রিন্ট করা, সিস্টেমের প্রোপার্টি পাওয়া ইত্যাদি। এটিSystem.out(স্ট্যান্ডার্ড আউটপুট স্ট্রিম) এবংSystem.in(স্ট্যান্ডার্ড ইনপুট স্ট্রিম) প্রদান করে।
StringBuilderএবংStringBuffer:- এই দুইটি ক্লাস স্ট্রিং ম্যানিপুলেশন (স্ট্রিংয়ে পরিবর্তন) করার জন্য ব্যবহৃত হয়।
StringBuilderতুলনামূলকভাবে দ্রুত এবং থ্রেড-সেফ নয়, আরStringBufferথ্রেড-সেফ, তবে কিছুটা ধীর গতির।
- এই দুইটি ক্লাস স্ট্রিং ম্যানিপুলেশন (স্ট্রিংয়ে পরিবর্তন) করার জন্য ব্যবহৃত হয়।
Exception:Exceptionক্লাসটি Java এর এক্সসেপশন হ্যান্ডলিং সিস্টেমের অংশ। এটি সমস্ত এক্সসেপশন (যেমনIOException,SQLException,NullPointerException) এর বেস ক্লাস।
Class:Classক্লাসটি Reflection API এর একটি গুরুত্বপূর্ণ অংশ এবং এটি একটি ক্লাসের মেটাডেটা (ক্লাসের সম্পর্কে তথ্য) ধারণ করে। এটি আপনাকে রানটাইমে ক্লাস সম্পর্কিত তথ্য অ্যাক্সেস করতে দেয়, যেমন মেথড, কনস্ট্রাক্টর, ফিল্ড ইত্যাদি।
Runtime:Runtimeক্লাসটি Java অ্যাপ্লিকেশনের রানটাইম পরিবেশ সম্পর্কে তথ্য প্রদান করে এবং এটি একটি রানটাইম ইনস্ট্যান্স তৈরি করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি Garbage Collection, memory usage ইত্যাদি পরিচালনা করতে পারেন।
Integer,Double,Character:
Integer,Double,Characterইত্যাদি হল Wrapper classes, যা তাদের প্রাথমিক টাইপের (primitive types) জন্য অবজেক্ট রূপে কাজ করে এবং বিভিন্ন ফাংশনালিটি যেমন প্যার্সিং, মান চেকিং ইত্যাদি প্রদান করে।
Java.lang প্যাকেজের কিছু গুরুত্বপূর্ণ ইন্টারফেস:
Cloneable:Cloneableইন্টারফেসটি একটি অবজেক্টের কপি তৈরি করার জন্য ব্যবহৃত হয়। এটিclone()মেথডের মাধ্যমে অবজেক্ট ক্লোন করতে দেয়। যদি একটি ক্লাসCloneableইন্টারফেস ইমপ্লিমেন্ট না করে, তাহলেCloneNotSupportedExceptionথ্রো হবে।
Comparable:Comparableইন্টারফেসটি দুটি অবজেক্টের মধ্যে তুলনা করতে ব্যবহৃত হয়। এটিcompareTo()মেথড প্রয়োজন করে, যা একটি অবজেক্টের তুলনায় অন্য অবজেক্টকে কম্পেয়ার করে।
Runnable:Runnableইন্টারফেসটি মাল্টিথ্রেডিং এর জন্য ব্যবহৃত হয়। এটিrun()মেথড প্রদান করে, যা একটি থ্রেডের কাজ সম্পাদন করার জন্য রান করবে।
Java.lang প্যাকেজে অন্যান্য গুরুত্বপূর্ণ ক্লাস ও বৈশিষ্ট্য:
ThreadLocal:ThreadLocalক্লাস মাল্টিথ্রেডিং অ্যাপ্লিকেশনে থ্রেডের জন্য নির্দিষ্ট তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
SystemClass:Systemক্লাসের মাধ্যমে আপনি সিস্টেম রিলেটেড কাজ যেমন, সিস্টেম প্রোপার্টি পড়া, স্ট্যান্ডার্ড আউটপুট ব্যবহার করা, অথবা সিস্টেম কনফিগারেশন দেখতে পারবেন।
CharacterClass:Characterক্লাসটি প্রাইমেটিভcharডেটার জন্য বিভিন্ন ইউটিলিটি ফাংশন সরবরাহ করে যেমন, চেক করা যে একটি ক্যারেক্টার অক্ষর, ডিগিট, হোয়াইটস্পেস ইত্যাদি কি না।
java.lang প্যাকেজটি Java প্রোগ্রামিংয়ের মৌলিক একটি অংশ এবং এটি Java অ্যাপ্লিকেশন ডেভেলপমেন্টে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। এই প্যাকেজটি অবজেক্ট, স্ট্রিং, গণনা, এক্সসেপশন, থ্রেডিং, সিস্টেম ইত্যাদি প্রাথমিক ক্লাস এবং ফাংশনালিটি সরবরাহ করে। এটি Java প্রোগ্রামগুলির স্থিতিশীলতা, কার্যকারিতা এবং নমনীয়তা নিশ্চিত করে। java.lang প্যাকেজের ক্লাস এবং ফাংশনগুলি প্রায় প্রতিটি Java অ্যাপ্লিকেশনেই ব্যবহৃত হয়।
Java.lang প্যাকেজ হল Java প্রোগ্রামিং ভাষার একটি অত্যন্ত গুরুত্বপূর্ণ প্যাকেজ যা Java API এর অংশ। এটি Java প্রোগ্রামিং ভাষায় অন্তর্ভুক্ত একটি ডিফল্ট প্যাকেজ, যা বেশিরভাগ প্রোগ্রামেই স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত থাকে এবং এতে অনেক মৌলিক ক্লাস এবং ইন্টারফেস থাকে যেগুলি Java প্রোগ্রামের প্রাথমিক কাজ এবং কার্যকারিতা পরিচালনা করতে ব্যবহৃত হয়।
Java.lang প্যাকেজের মূল বৈশিষ্ট্য:
- অটোমেটিক ইনপোর্ট:
java.langপ্যাকেজটি Java প্রোগ্রামগুলিতে অটোমেটিকভাবে ইনপোর্ট হয়ে থাকে, অর্থাৎ আপনার কোডেimport java.lang.*;স্টেটমেন্ট লিখতে হয় না, কারণ এটি Java-এর ডিফল্ট প্যাকেজ।
- অত্যন্ত গুরুত্বপূর্ণ ক্লাস:
- এটি কিছু মৌলিক ক্লাস সরবরাহ করে, যেমন Object, String, Math, Thread, System, Runtime, Class, ইত্যাদি, যেগুলি Java প্রোগ্রামিংয়ের জন্য অপরিহার্য।
Java.lang প্যাকেজে কিছু গুরুত্বপূর্ণ ক্লাস:
Object Class:
Objectহল Java এর সকল ক্লাসের মূল (super) ক্লাস। সব ক্লাসইObjectক্লাস থেকে ইনহেরিট করে এবং এটি বিভিন্ন মৌলিক মেথড যেমনequals(),hashCode(),toString()ইত্যাদি প্রদান করে।
Example:
public class Example { public static void main(String[] args) { Object obj = new Object(); System.out.println(obj.toString()); } }String Class:
Stringহল একটি immutable ক্লাস যা চরিত্রের সিকোয়েন্স সংরক্ষণ করে। এটি স্ট্রিং ম্যানিপুলেশনের জন্য বিভিন্ন মেথড প্রদান করে, যেমনlength(),charAt(),substring(),equals(), ইত্যাদি।
Example:
public class Example { public static void main(String[] args) { String greeting = "Hello, World!"; System.out.println(greeting.length()); // Output: 13 } }Math Class:
Mathক্লাসটি গাণিতিক অপারেশনের জন্য ব্যবহৃত হয়, যেমন sin(), cos(), pow(), sqrt(), abs(), random(), ইত্যাদি।
Example:
public class Example { public static void main(String[] args) { double result = Math.sqrt(25); System.out.println(result); // Output: 5.0 } }Thread Class:
Threadক্লাসটি Java তে মাল্টিথ্রেডিং এর জন্য ব্যবহৃত হয়। এটি থ্রেড চালু, থামানো, প্রাধান্য নির্ধারণ, থ্রেডের অবস্থান জানা ইত্যাদি ফিচার প্রদান করে।
Example:
public class Example extends Thread { public void run() { System.out.println("Thread is running"); } public static void main(String[] args) { Example thread = new Example(); thread.start(); // Starts the thread } }System Class:
Systemক্লাসটি Java প্রোগ্রামের ইনপুট এবং আউটপুট পরিচালনা করে, এবং সিস্টেম প্রোপার্টি, টাইমজোন, পরিবেশ ভেরিয়েবল ইত্যাদি সম্পর্কে তথ্য প্রদান করে। এটি standard input/output ব্যবহার করতে সাহায্য করে (যেমনSystem.out.println()), এবং সিস্টেমে অ্যাক্সেস দেয়।
Example:
public class Example { public static void main(String[] args) { System.out.println("Hello, World!"); } }Runtime Class:
Runtimeক্লাসটি জাভা রানটাইম পরিবেশের সাথে কাজ করতে ব্যবহৃত হয়। এটি আপনাকে JVM এর সাথে ইন্টারঅ্যাক্ট করার সুযোগ দেয়, যেমন getRuntime(), exec(), exit(), gc() ইত্যাদি।
Example:
public class Example { public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); System.out.println("Available processors: " + runtime.availableProcessors()); } }Class Class:
Classক্লাসটি একটি reflection API হিসেবে কাজ করে, যা আপনাকে রানটাইমে একটি ক্লাসের তথ্য সম্পর্কে জানতে দেয়, যেমন তার মেথডস, ফিল্ডস, কন্সট্রাক্টরস, ইত্যাদি।
Example:
public class Example { public static void main(String[] args) { Class<?> cls = String.class; System.out.println("Class Name: " + cls.getName()); } }Exception Handling Classes:
Exception,Error,Throwableক্লাসগুলি Java তে exception handling এর মূল অবজেক্ট। এগুলি কোডে ত্রুটি হ্যান্ডলিং করতে ব্যবহৃত হয়।
Example:
public class Example { public static void main(String[] args) { try { int result = 10 / 0; // Division by zero } catch (ArithmeticException e) { System.out.println("Error: " + e.getMessage()); } } }
Java.lang প্যাকেজের আরও কিছু গুরুত্বপূর্ণ ক্লাস:
- Integer, Double, Character: এই ক্লাসগুলি প্রিমিটিভ ডেটা টাইপের জন্য wrapper class হিসেবে কাজ করে।
- StringBuffer:
StringBufferএকটি mutable ক্লাস যা স্ট্রিং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। - Throwable: এটি ব্যতিক্রম (Exception) এবং ত্রুটি (Error) দুটোই ধারণ করে এবং সমস্ত exceptions এই ক্লাস থেকে ইনহেরিট করে।
java.lang প্যাকেজ Java-র একটি অত্যন্ত গুরুত্বপূর্ণ এবং অবিচ্ছেদ্য অংশ, যা কোডিংয়ের মূল ফাংশনালিটিগুলি প্রদান করে। এটি Object, String, Math, Thread, System, Runtime, Exception ইত্যাদি প্রাথমিক ক্লাসের সমন্বয়ে গঠিত। এই ক্লাসগুলির মাধ্যমে Java প্রোগ্রামগুলি পরিচালনা করা, ব্যতিক্রম হ্যান্ডলিং, থ্রেড ম্যানেজমেন্ট এবং অন্যান্য মৌলিক কার্যাবলী করা সম্ভব। Java প্রোগ্রামিংয়ের জন্য java.lang প্যাকেজের জ্ঞান অপরিহার্য।
java.lang প্যাকেজ হল Java-এর সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ প্যাকেজ, যা Java প্রোগ্রামিং ভাষার অন্তর্গত বিভিন্ন মৌলিক ক্লাস এবং ইন্টারফেস প্রদান করে। এটি Java API-এর অংশ এবং এটি সমস্ত Java অ্যাপ্লিকেশন অটোমেটিক্যালি অন্তর্ভুক্ত করে, তাই আপনাকে import java.lang.* লিখতে হয় না। এটি Java এর বেসিক কার্যাবলী, ডেটা টাইপ, থ্রেডিং, স্ট্রিং ম্যানিপুলেশন, এবং আরও অনেক মৌলিক কাজের জন্য ক্লাস সরবরাহ করে।
Java.lang প্যাকেজের গুরুত্ব:
- বেসিক ক্লাস সরবরাহ:
java.langপ্যাকেজটি Java ভাষার জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি এমন অনেক মৌলিক ক্লাস সরবরাহ করে যা সাধারণত প্রতিটি Java প্রোগ্রামে ব্যবহৃত হয়। এই প্যাকেজের ক্লাস এবং ইন্টারফেসগুলি Java এর সাধারণ কার্যকলাপ এবং লগিক পরিচালনার জন্য অপরিহার্য। - অটোমেটিক ইনক্লুশন:
java.langপ্যাকেজটি Java অ্যাপ্লিকেশনের জন্য ডিফল্টভাবে অন্তর্ভুক্ত করা হয়। এর মানে হল যে, আপনাকে এর ক্লাস এবং ইন্টারফেস ব্যবহার করতে বিশেষভাবেimportকরার প্রয়োজন হয় না। - থ্রেডিং এবং মাল্টি-থ্রেডিং:
ThreadএবংRunnableইন্টারফেসের মতো গুরুত্বপূর্ণ ক্লাসগুলিjava.langপ্যাকেজে অন্তর্ভুক্ত থাকে, যা থ্রেডিং এবং মাল্টি-থ্রেডিংয়ের জন্য ব্যবহৃত হয়। - স্ট্রিং এবং স্ট্রিং ম্যানিপুলেশন: স্ট্রিং প্রক্রিয়াকরণ ও ম্যানিপুলেশন সুনির্দিষ্ট এবং দক্ষভাবে পরিচালনা করার জন্য
Stringক্লাসjava.langপ্যাকেজে রয়েছে। - অটোমেটিক টাইপ কাস্টিং এবং কনভার্সন: এই প্যাকেজের
Objectক্লাস এবংClassক্লাস Java ডেটা টাইপ কাস্টিং এবং কনভার্সন প্রক্রিয়ায় সহায়তা করে।
java.lang প্যাকেজের প্রধান ক্লাস এবং ইন্টারফেস:
Objectক্লাস:- Object ক্লাস হল Java এর সমস্ত ক্লাসের রুট ক্লাস। এটি এমন কিছু বেসিক মেথড সরবরাহ করে যেমন
toString(),equals(),hashCode(),clone()ইত্যাদি, যা প্রত্যেকটি ক্লাসে ব্যবহৃত হয়।
উদাহরণ:
class Person { String name; public Person(String name) { this.name = name; } @Override public String toString() { return "Person's name: " + name; } } public class Main { public static void main(String[] args) { Person person = new Person("Alice"); System.out.println(person.toString()); // Output: Person's name: Alice } }- Object ক্লাস হল Java এর সমস্ত ক্লাসের রুট ক্লাস। এটি এমন কিছু বেসিক মেথড সরবরাহ করে যেমন
Stringক্লাস:- String ক্লাস একটি ইমিউটেবল (immutable) ক্লাস যা স্ট্রিং সম্পর্কিত বিভিন্ন মেথড যেমন
length(),substring(),concat(),equals(),indexOf(), ইত্যাদি প্রদান করে।
উদাহরণ:
public class StringExample { public static void main(String[] args) { String str = "Hello, World!"; System.out.println(str.length()); // Output: 13 System.out.println(str.substring(7)); // Output: World! } }- String ক্লাস একটি ইমিউটেবল (immutable) ক্লাস যা স্ট্রিং সম্পর্কিত বিভিন্ন মেথড যেমন
Mathক্লাস:- Math ক্লাসটি গণনা সম্পর্কিত বিভিন্ন কনস্ট্যান্ট এবং মেথড যেমন
PI,sqrt(),pow(),abs()ইত্যাদি সরবরাহ করে।
উদাহরণ:
public class MathExample { public static void main(String[] args) { double number = -10.5; System.out.println(Math.abs(number)); // Output: 10.5 System.out.println(Math.sqrt(16)); // Output: 4.0 } }- Math ক্লাসটি গণনা সম্পর্কিত বিভিন্ন কনস্ট্যান্ট এবং মেথড যেমন
Threadক্লাস:- Thread ক্লাসটি মাল্টি-থ্রেডিং এর জন্য ব্যবহৃত হয়। এটি থ্রেড তৈরি, চালানো, বিরতি দেওয়ার মতো বিভিন্ন ফাংশনালিটি প্রদান করে।
উদাহরণ:
class MyThread extends Thread { public void run() { System.out.println("Thread is running"); } } public class ThreadExample { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); // Start the thread } }Systemক্লাস:- System ক্লাস বিভিন্ন সিস্টেম সম্পর্কিত কার্যকলাপ পরিচালনা করে, যেমন আউটপুট স্ট্রিম, ইনপুট স্ট্রিম, সিস্টেম প্রপার্টি, এবং গারবেজ কালেকশন চালানো। এর মধ্যে
System.out.println()স্টেটমেন্টটি আউটপুট প্রদানের জন্য ব্যবহৃত হয়।
উদাহরণ:
public class SystemExample { public static void main(String[] args) { System.out.println("This is a simple example of System class."); } }- System ক্লাস বিভিন্ন সিস্টেম সম্পর্কিত কার্যকলাপ পরিচালনা করে, যেমন আউটপুট স্ট্রিম, ইনপুট স্ট্রিম, সিস্টেম প্রপার্টি, এবং গারবেজ কালেকশন চালানো। এর মধ্যে
Integer,Double,Character,Booleanক্লাস:- এই ক্লাসগুলি Java এর Wrapper Classes যা প্রিমিটিভ ডেটা টাইপগুলির জন্য ব্যবহৃত হয় এবং অটোমেটিক টাইপ কনভার্সন বা boxing এবং unboxing সুবিধা প্রদান করে।
উদাহরণ:
public class WrapperExample { public static void main(String[] args) { int num = 5; Integer numWrapper = Integer.valueOf(num); // Boxing int primitiveNum = numWrapper.intValue(); // Unboxing System.out.println(primitiveNum); // Output: 5 } }Classক্লাস:- Class ক্লাস Java ক্লাসের মেটাডেটা ধারণ করে। এটি ক্যালাসের নাম, মেথড, কনস্ট্রাক্টর, ফিল্ড ইত্যাদি তথ্য প্রদান করতে পারে।
উদাহরণ:
public class ClassExample { public static void main(String[] args) throws ClassNotFoundException { Class<?> cls = Class.forName("java.lang.String"); System.out.println(cls.getName()); // Output: java.lang.String } }
java.lang প্যাকেজের অন্যান্য গুরুত্বপূর্ণ ক্লাস ও ইন্টারফেস:
Throwable,Error,Exception: এই ক্লাসগুলি Java তে এক্সসেপশন হ্যান্ডলিং এবং ত্রুটি ব্যবস্থাপনার জন্য ব্যবহৃত হয়।StringBuffer,StringBuilder: মিউটেবল স্ট্রিং ম্যানিপুলেশন ক্লাস।Runnable: থ্রেড পরিচালনার জন্য ব্যবহৃত একটি ইন্টারফেস।Runtime: রানটাইম পরিবেশের সাথে সম্পর্কিত তথ্য এবং কার্যকলাপ প্রাপ্তি।
java.lang প্যাকেজ হল Java-র একটি অত্যন্ত গুরুত্বপূর্ণ প্যাকেজ যা জাভা অ্যাপ্লিকেশনের ভিত্তি হিসেবে কাজ করে। এর মধ্যে ক্লাস এবং ইন্টারফেসগুলির মাধ্যমে Java এর মৌলিক কার্যাবলী যেমন স্ট্রিং ম্যানিপুলেশন, থ্রেডিং, অটোমেটিক টাইপ কনভার্সন, মেথড অপারেশন এবং সিস্টেম সম্পর্কিত কার্যাবলী সমর্থন করা হয়। এটি Java প্রোগ্রামিংয়ে একটি অপরিহার্য অংশ এবং এর ব্যবহারের মাধ্যমে কোডিং আরো সহজ এবং দ্রুততর হয়।
java.lang হল Java-এর সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ প্যাকেজ। এটি Java Standard Library-এর অংশ এবং automatically imported হয়, অর্থাৎ আপনি যখন Java প্রোগ্রাম লিখেন, তখন আপনাকে import java.lang.*; লাইনটি আলাদাভাবে লিখতে হয় না কারণ এটি স্বয়ংক্রিয়ভাবে লোড হয়ে যায়। এই প্যাকেজে Java এর মৌলিক ক্লাস এবং ইন্টারফেস থাকে, যেমন স্ট্রিং, ম্যাথ, সিস্টেম, থ্রেড ইত্যাদি।
অন্যান্য প্যাকেজ হল Java API-এর অন্যান্য অংশ যা Java প্রোগ্রামিংয়ের বিশেষ বা অতিরিক্ত কাজের জন্য ব্যবহৃত হয়, যেমন java.util, java.io, java.net, ইত্যাদি। এসব প্যাকেজ আপনাকে Java এর অগ্রিম ফিচার এবং লাইব্রেরি সমর্থন করে।
1. java.lang প্যাকেজের বৈশিষ্ট্য
- অটোমেটিক ইম্পোর্ট:
java.langপ্যাকেজের ক্লাসগুলি স্বয়ংক্রিয়ভাবে আপনার প্রোগ্রামে ব্যবহৃত হয়, তাই আপনি আলাদাভাবে এগুলো ইম্পোর্ট করতে হবে না। - প্রাথমিক এবং মৌলিক ক্লাসসমূহ: এটি এমন ক্লাসসমূহ ধারণ করে যা Java প্রোগ্রাম লেখার জন্য অত্যন্ত গুরুত্বপূর্ণ, যেমন
String,Math,System,Thread,Objectইত্যাদি। - ব্যবহারিক ক্লাসসমূহ:
java.langপ্যাকেজের ক্লাসগুলি সাধারনত লো-লেভেল ফিচার প্রদান করে এবং Java-র মৌলিক কার্যাবলী এবং স্ট্যান্ডার্ড ফাংশনালিটিকে সমর্থন করে।
Java.lang প্যাকেজের কিছু গুরুত্বপূর্ণ ক্লাস:
Object: সব ক্লাসের সুপার ক্লাস (Superclass), এটি সকল অবজেক্টের বেস ক্লাস।String: স্ট্রিং সংক্রান্ত কার্যাবলী পরিচালনা করে।Math: গণনা এবং গণিতের কাজের জন্য মেথড প্রদান করে।System: সিস্টেম সংক্রান্ত কাজ যেমন ইনপুট/আউটপুট (I/O), প্রপার্টি ইত্যাদি পরিচালনা করে।Thread: থ্রেড পরিচালনার জন্য ব্যবহৃত হয়।Exception: সব এক্সেপশন ক্লাসের সুপার ক্লাস।
2. অন্যান্য প্যাকেজগুলির বৈশিষ্ট্য
- ইম্পোর্ট করতে হয়: অন্যান্য প্যাকেজের ক্লাস ব্যবহার করার জন্য আপনাকে সেগুলো আলাদাভাবে ইম্পোর্ট করতে হয়।
- বিশেষ কাজের জন্য ব্যবহৃত: অন্যান্য প্যাকেজগুলি বিশেষ ধরনের কাজের জন্য ব্যবহৃত হয়, যেমন ডেটা স্ট্রাকচার (যেমন,
java.util), ইনপুট/আউটপুট অপারেশন (java.io), নেটওয়ার্কিং (java.net) ইত্যাদি।
অন্যান্য প্যাকেজের উদাহরণ:
java.utilপ্যাকেজ:- এটি ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সমূহ প্রদান করে, যেমন
ArrayList,HashMap,Date,Collectionsইত্যাদি। উদাহরণ:
import java.util.ArrayList; public class Example { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); System.out.println(list); } }
- এটি ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সমূহ প্রদান করে, যেমন
java.ioপ্যাকেজ:- এটি ইনপুট/আউটপুট সম্পর্কিত ক্লাস যেমন
File,BufferedReader,PrintWriterপ্রদান করে। উদাহরণ:
import java.io.*; public class FileExample { public static void main(String[] args) throws IOException { FileWriter writer = new FileWriter("output.txt"); writer.write("Hello, World!"); writer.close(); } }
- এটি ইনপুট/আউটপুট সম্পর্কিত ক্লাস যেমন
java.netপ্যাকেজ:- এটি নেটওয়ার্কিং সম্পর্কিত ক্লাস যেমন
Socket,URL,URLConnectionইত্যাদি প্রদান করে। উদাহরণ:
import java.net.*; import java.io.*; public class URLExample { public static void main(String[] args) throws Exception { URL url = new URL("http://example.com"); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } }
- এটি নেটওয়ার্কিং সম্পর্কিত ক্লাস যেমন
3. java.lang এবং অন্যান্য প্যাকেজের মধ্যে পার্থক্য
| Feature | java.lang প্যাকেজ | অন্যান্য প্যাকেজ (যেমন, java.util, java.io, java.net) |
|---|---|---|
| Import Requirement | স্বয়ংক্রিয়ভাবে ইম্পোর্ট করা হয়। | আলাদাভাবে ইম্পোর্ট করতে হয়। |
| Content Type | মৌলিক, স্ট্যান্ডার্ড ক্লাসসমূহ (যেমন, String, Math, System) | বিশেষ উদ্দেশ্য নিয়ে তৈরি ক্লাসসমূহ (যেমন, ArrayList, File, Socket) |
| Purpose | প্রাথমিক কার্যাবলী (যেমন, স্ট্রিং প্রক্রিয়া, গণনা, থ্রেডিং, এক্সেপশন) | বিশেষ ক্ষেত্রের কার্যাবলী (যেমন, ডেটা স্ট্রাকচার, I/O, নেটওয়ার্কিং) |
| Example Classes | String, Math, System, Thread, Object | ArrayList, File, Socket, Date, BufferedReader |
| Use Case | প্রোগ্রামের মৌলিক কার্যক্রম পরিচালনা | আরো নির্দিষ্ট কার্যাবলী যেমন ডেটা স্টোরেজ, নেটওয়ার্কিং ইত্যাদি |
java.langপ্যাকেজ Java প্রোগ্রামের সবচেয়ে মৌলিক প্যাকেজ, যা আপনাকে ডেটা প্রক্রিয়া, গণনা, থ্রেড, এক্সেপশন এবং অন্যান্য মৌলিক কার্যাবলী পরিচালনা করতে সাহায্য করে।- অন্যান্য প্যাকেজগুলি Java-এর বিশেষ কাজের জন্য ব্যবহৃত হয়, যেমন
java.utilডেটা স্ট্রাকচার ম্যানেজমেন্ট,java.ioইনপুট/আউটপুট অপারেশন,java.netনেটওয়ার্কিং ইত্যাদি। java.langপ্যাকেজের ক্লাসগুলো সব Java অ্যাপ্লিকেশনে স্বয়ংক্রিয়ভাবে উপলব্ধ থাকে, অন্য প্যাকেজগুলো ব্যবহার করার জন্য সেগুলি আলাদাভাবে ইম্পোর্ট করতে হয়।
java.lang প্যাকেজ Java এর সবচেয়ে মৌলিক এবং গুরুত্বপূর্ণ প্যাকেজগুলোর মধ্যে একটি। এটি Java Runtime Environment (JRE) এর সাথে স্বয়ংক্রিয়ভাবে লোড হয় এবং এতে প্রাথমিকভাবে ব্যবহৃত ক্লাস এবং ইন্টারফেস রয়েছে, যেগুলো প্রায় সমস্ত Java প্রোগ্রামে ব্যবহৃত হয়। আপনি যখন কোনো Java প্রোগ্রাম লিখেন, তখন এই প্যাকেজের ক্লাসগুলি স্বয়ংক্রিয়ভাবে অ্যাক্সেস করা যায়, তাই আপনাকে এটি import করতে হয় না (এটি অটোমেটিক্যালি ইম্পোর্ট হয়ে যায়)।
নিচে java.lang প্যাকেজের গুরুত্বপূর্ণ ক্লাস এবং ইন্টারফেসসমূহ এর সংক্ষিপ্ত পরিচিতি দেওয়া হলো:
1. Object Class
- Object হল Java এর মূল ক্লাস এবং সকল ক্লাসের সুপারক্লাস। অর্থাৎ, সমস্ত ক্লাস
Objectক্লাস থেকে উত্তরাধিকার সূত্রে বৈশিষ্ট্য পায়। - এটি
equals(),hashCode(),toString(),clone()এবংnotify()সহ অনেক মৌলিক মেথড প্রদান করে।
উদাহরণ:
Object obj = new Object();
System.out.println(obj.toString());
2. String Class
- String হল একটি immutable class যা টেক্সট (অক্ষর) সংরক্ষণ করতে ব্যবহৃত হয়। একবার একটি স্ট্রিং তৈরি হলে, সেটি পরিবর্তন করা সম্ভব নয়।
- এটি স্ট্রিং সম্পর্কিত বিভিন্ন কাজ যেমন যোগ করা, কাটাছেঁড়া, অনুসন্ধান করা ইত্যাদি করতে সাহায্য করে।
উদাহরণ:
String str = "Hello";
System.out.println(str.length());
3. StringBuilder and StringBuffer Classes
- StringBuilder এবং StringBuffer স্ট্রিং অপারেশনের জন্য ব্যবহার করা হয়, কিন্তু এই দুটি ক্লাস স্ট্রিং-এর তুলনায় mutable (পরিবর্তনশীল)।
- StringBuffer থ্রেড-সেফ, অর্থাৎ একাধিক থ্রেডের মাধ্যমে ব্যবহার করা হলেও এটি নিরাপদ থাকে, তবে StringBuilder দ্রুত কাজ করে কারণ এটি থ্রেড-সেফ নয়।
উদাহরণ:
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
System.out.println(sb.toString());
4. Math Class
- Math ক্লাসটি গাণিতিক ফাংশন সরবরাহ করে, যেমন গাণিতিক ক্যালকুলেশন, র্যান্ডম নম্বর তৈরি করা, গাণিতিক ফাংশন (যেমন, সাইন, কসমস, লগারিদম) ইত্যাদি।
উদাহরণ:
double result = Math.sqrt(25); // Returns 5.0
System.out.println(result);
5. System Class
- System ক্লাসটি প্রোগ্রামের পরিবেশ এবং সিস্টেম রিসোর্সের সাথে সম্পর্কিত বিভিন্ন কাজ করে, যেমন আউটপুট স্ট্রিম (প্রিন্ট স্ট্যাটমেন্ট), ইনপুট স্ট্রিম এবং সিস্টেম প্রপার্টি সেট করা ইত্যাদি।
উদাহরণ:
System.out.println("Hello, World!");
6. Thread Class
- Thread ক্লাসটি মাল্টিথ্রেডিং কাজ করতে ব্যবহৃত হয়। এটি একটি থ্রেড তৈরি এবং পরিচালনা করতে সাহায্য করে। থ্রেড কন্ট্রোল এবং সিঙ্ক্রোনাইজেশন মেথডগুলিও প্রদান করে।
উদাহরণ:
Thread t = new Thread(() -> {
System.out.println("Thread is running");
});
t.start();
7. Runnable Interface
- Runnable ইন্টারফেসটি মাল্টিথ্রেডিংয়ের জন্য ব্যবহৃত হয় এবং এটি একটি
run()মেথড প্রদান করে, যার মধ্যে আপনি থ্রেডের কাজ নির্ধারণ করতে পারেন।
উদাহরণ:
Runnable task = () -> System.out.println("Running in a thread");
Thread t = new Thread(task);
t.start();
8. Exception Classes (Exception, RuntimeException, Throwable)
- Throwable হল Java এর সব ধরনের ত্রুটির মূল ক্লাস, এর মধ্যে দুটি প্রধান সাবক্লাস রয়েছে:
- Error: হার্ডওয়্যার বা JVM ত্রুটি।
- Exception: সফটওয়্যার বা প্রোগ্রামগত ত্রুটি।
- RuntimeException এর মধ্যে সাধারণত অ্যানুননিত ত্রুটি যেমন,
NullPointerException,ArrayIndexOutOfBoundsExceptionইত্যাদি থাকে।
উদাহরণ:
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
}
9. Integer, Double, and Other Wrapper Classes
- Integer, Double, Character, Boolean এবং অন্যান্য wrapper ক্লাসগুলো primitive types এর জন্য objects তৈরি করে। এগুলি autoboxing এবং unboxing সাপোর্ট করে।
উদাহরণ:
Integer x = 10; // Autoboxing
int y = x; // Unboxing
10. Character Class
- Character ক্লাসটি চরিত্রের সম্পর্কিত বিভিন্ন ফাংশন প্রদান করে, যেমন বড় হাতের অক্ষর, ছোট হাতের অক্ষর, সংখ্যা, অক্ষরের পরিচয় ইত্যাদি।
উদাহরণ:
boolean isDigit = Character.isDigit('5');
System.out.println(isDigit); // true
11. Class Class
- Class ক্লাসটি Java ক্লাসের মেটাডেটা (যেমন, ক্লাসের নাম, সুপারক্লাস, ফিল্ড, মেথড) ধারণ করে এবং এটি Reflection API এর জন্য ব্যবহৃত হয়।
উদাহরণ:
Class<?> cls = String.class;
System.out.println(cls.getName()); // Output: java.lang.String
12. ThreadLocal Class
- ThreadLocal ক্লাসটি একে অপরের সাথে সিঙ্ক্রোনাইজড থ্রেডের মধ্যে ডেটা শেয়ার করার জন্য ব্যবহৃত হয়। প্রতিটি থ্রেডের নিজস্ব কপি থাকে।
উদাহরণ:
ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 1);
System.out.println(threadLocal.get()); // Output: 1
13. Runtime Class
- Runtime ক্লাসটি জাভা রানটাইম সিস্টেমের সাথে সম্পর্কিত বিভিন্ন কার্যাবলী সরবরাহ করে, যেমন প্রোগ্রামটি শেষ করা, মেমরি ব্যবহার ইত্যাদি।
উদাহরণ:
Runtime runtime = Runtime.getRuntime();
long memory = runtime.freeMemory();
System.out.println("Free memory: " + memory);
14. Math Class
- Math ক্লাসটি গাণিতিক কাজ করার জন্য ব্যবহৃত হয়, যেমন পরিসংখ্যান, ত্রিকোণমিতিক ফাংশন, এবং র্যান্ডম সংখ্যার উৎপাদন ইত্যাদি।
উদাহরণ:
double result = Math.pow(2, 3); // 2 raised to the power of 3
System.out.println(result); // Output: 8.0
Java.lang প্যাকেজের ক্লাস এবং ইন্টারফেসের মূল বৈশিষ্ট্য:
- Automatic Import:
java.langপ্যাকেজটি Java প্রোগ্রামের অংশ হিসেবে স্বয়ংক্রিয়ভাবে ইম্পোর্ট হয়ে যায়। - Core Functionality: এটি Java-এর প্রধান কাজের জন্য প্রয়োজনীয় মৌলিক ক্লাস এবং ফাংশনালিটি প্রদান করে।
- Immutable and Mutable Classes: এতে কিছু immutable (যেমন
String) এবং কিছু mutable (যেমনStringBuilder) ক্লাস রয়েছে। - Foundation of Java:
java.langপ্যাকেজটি Java প্রোগ্রামের জন্য একটি শক্তিশালী ফাউন্ডেশন হিসেবে কাজ করে, যা ব্যতিক্রম পরিচালনা, ডেটা এনক্রিপশন, গাণিতিক হিসাব এবং থ্রেডিং এর মতো কাজ সম্পাদন করতে সাহায্য করে।
java.lang প্যাকেজ Java-এর একটি মৌলিক এবং অতি গুরুত্বপূর্ণ অংশ, যা প্রায় সমস্ত Java প্রোগ্রামে ব্যবহৃত হয়। এই প্যাকেজে বিভিন্ন ধরনের utility classes, wrapper classes, এবং core classes রয়েছে যা Java অ্যাপ্লিকেশনগুলি ডেভেলপ করার জন্য প্রয়োজনীয় প্রধান বৈশিষ্ট্য সরবরাহ করে।
Read more